Generating message effectiveness predictions and insights

ABSTRACT

Messages are processed to generate effectiveness predictions and/or other insights associated with the messages. Candidate messages are processed through a natural language processing (NLP) component to parse the candidate message into message elements for further processing. The message elements are converted to a vector or set of vectors, which are provided as input to a machine learning model to make predictions of message effectiveness. A contribution score can be made for each message element of the candidate message, which may be indicative of the importance or relevance for the individual message element to the overall predicted message effectiveness. Other message elements not originally within the message can be provided as candidates to replace message elements already located within the message. In this way, a message that is likely to be effective, such being likely to have a high conversion rate, can be published or otherwise distributed.

CROSS-REFERENCE TO RELATED APPLICATIONS

This application is a continuation of U.S. patent application Ser. No.16/458,569 filed Jul. 1, 2019, the entire contents of which areincorporated by reference herein.

BACKGROUND

Computer network entities, such as network advertisers, typically workwith publishers (e.g., a host website) to provide messages (e.g.,advertisements) that user computing devices receive. For example, auser, browsing a web application of the publisher, can issue a queryusing particular key words. A network advertiser can identify the keywords and provide a bid associated with the particular key words to thepublisher indicating how much money the network advertiser is willing topay for an advertisement to be displayed to the user computing device.After network communications between the network advertiser andpublisher computing entity are made, the publisher's website can causedisplay of a message on the user computing device. Such a message maydescribe items for sale at the network advertiser's electronicmarketplace website.

The user may then make or not make various selections or other actionsassociated with the message. Over time, entities can obtain informationassociated with these selections or actions, such as an estimatedconversion rate. A conversion rate is the percentage or proportion ofvisitors to a website or application that complete some predefinedaction (e.g., the download of a software instance within the message).The conversion rate can be affected by various factors associated with amessage, such as particular message words, message pictures, content ofthe message, web page message placement, etc.

Generating messages and predicting the effectiveness of messages can bechallenging because new or different words or symbols may continuouslybe used, messages may be generated in different natural languages, and avast amount of computing resources, such as memory, can be consumed whentraining and executing predictive software models.

SUMMARY

Embodiments of the present invention relate to generating messageeffectiveness predictions (e.g., a predicted conversion rate) and/orother insights associated with messages. In certain embodiments,candidate messages are processed through a natural language processing(NLP) component to parse the candidate message into message elements(e.g., words, a combination of words, symbols, etc.) for furtherprocessing. The message elements are converted to a vector or set ofvectors (e.g., real numbers), which are provided as input to a machinelearning model to make predictions of message effectiveness. Acontribution score can be made for each message element of the candidatemessage, which may be indicative of the importance or relevance for theindividual message element to the overall predicted messageeffectiveness. In some embodiments, other message elements notoriginally within the message can be provided as candidates to replaceor supplemented with message elements already within the message. Forexample, the word “sneakers” (associated with a relatively lowconversion rate) in the message “black sneakers for sale” can bereplaced with the phrase “basketball shoes” (associated with arelatively high conversion rate) such that the message reads “blackbasketball shoes for sale.” In this way, a message that is likely to beeffective, such being likely to have a high conversion rate, can bepublished or otherwise distributed.

This summary is provided to introduce a selection of concepts in asimplified form that are further described below in the DetailedDescription. This summary is not intended to identify key features oressential features of the claimed subject matter, nor is it intended tobe used as an aid in determining the scope of the claimed subjectmatter.

BRIEF DESCRIPTION OF THE DRAWINGS

The present invention is described in detail below with reference to theattached drawing figures, wherein:

FIG. 1 is a schematic diagram of a computing environment in whichaspects of the present disclosure are employed, according to someembodiments.

FIG. 2 is a block diagram of a system in which aspects of the presentdisclosure are employed, according to some embodiments.

FIG. 3 is a block diagram of an example system of a training phase foremploying aspects of the present disclosure, according to someembodiments.

FIG. 4 is a block diagram of an example prediction phase for employingaspects of the present disclosure, according to some embodiments.

FIG. 5 is a schematic diagram illustrating how message vectorsassociated with messages are run through a word embedding vector model,according to some embodiments.

FIG. 6 is a schematic diagram illustrating an example random forestregression learning model, according to some embodiments.

FIG. 7 is an example screenshot of a user interface, according to someembodiments.

FIG. 8 is a flow diagram of an example process for generating a messageeffectiveness prediction and associated scores, according to someembodiments.

FIG. 9 is a flow diagram of an example process for generating acontribution score for an original message element, according to someembodiments.

FIG. 10 is a flow diagram of an example process for replacing a messageelement with a synonym of the message element, according to someembodiments.

FIG. 11 is a computer environment in which aspects of the presentdisclosure are employed, according to some embodiments.

FIG. 12 is a block diagram of a computing device in which aspects of thepresent disclosure employ, according to some embodiments.

DETAILED DESCRIPTION Definitions

Various terms are used throughout, some of which are described below:

A “message” as described herein is any sequence of characters (e.g., aphrase, a sentence, a sentence coupled with an image, etc.) in naturallanguage that contains message elements. A “message element” is anindividual character or other sub-sequence of characters (e.g., a word,a symbol (e.g., an images, picture, emoticon, emoji, etc.) and/orcombination of words) within the message. A message element is thus anycharacter or sequence of characters that make up only a portion of themessage. In various embodiments a message is a candidate advertisementfor one or more services or one or more products for sale in a computernetwork environment. This computer network environment can include oneor more publisher computing devices, one or more network advertisercomputing devices, and/or one or more user devices. For example, amessage can be a sentence that describes a marketing message such as,“Brand A phone for sale at X dollars.” A message element can be the word“sale” within the message.

A “conversion rate” is the proportion or quantity of all website orapplication users that perform some predefined action. Alternatively, itis the quantity of predefined actions that occur over all application orwebsite visits. Mathematically, the formula can be stated as thequantity of website or application users that perform some predefinedaction (i.e., the “conversion”) divided by the total quantity of websiteor application users that have visited the website or application andhave been presented with the message. The “predefined action” cancorrespond to any suitable user selection, user input, user download,user transaction, or any other action that a user performs that anentity (e.g., a network advertiser) defines to monitor. For example, thepredefined action can be or include user downloads, user selections ofadvertisements, queries, user purchases, etc. per computer over multipleuser sessions. In an illustrative example, the predefined action orconversion that is monitored is the number of clicks on anadvertisement. In a hypothetical example, if a total of 50 users haveclicked on the advertisement and the advertisement was displayed to 100total user devices, the conversion rate is 50%. Fifty percent of usersperformed the predetermined action.

“Message effectiveness predictions”, “conversion predictions”, orassociated predictions described herein corresponds to predicting howeffective a particular message will be at: conveying its intendedmessage, reaching a particular audience, prompting individuals toperform a predetermined action, or any suitable prediction. For example,predicting message effectiveness can be or include predicting aconversion rate. As described in more detail herein, predictingconversion rates for an input message can be based on analyzinghistorical input messages and their associated conversion rates. Thismay include using one or more machine learning models to identifyhistorical patterns and associations for making predictions. In anotherexample, message effectiveness predictions can include predicted openrate if opening a message is one of the predetermined actionsconstituting a conversion. A predicted open rate is a prediction of therate at which emails are opened. This rate typically depends on howeffective a message in the subject line is at catching the reader'sattention.

A “contribution score” as described herein is a score of an individualmessage element that is indicative of the priority, importance, ranking,and/or relevance of contributing to the overall message effectivenessprediction. For example, a message can contain a plurality of words. Afirst word can include a score of 0.90 and a second word can include ascore of 0.50. Because 0.90 is a higher score than 0.50, this indicatesthat the first word contributes more to a predicted conversion raterelative to the second word. This means that the first word is rankedhigher or is more important for a predicted conversion rate. Thecontribution score can be determined based on one or more factors, suchas historical conversion rates of historical messages. For example, thefirst word may have been included in historical messages, where thefirst word had or is otherwise associated with conversion rates of over90%. Accordingly, the score of 0.90 would be provided.

A “candidate advertisement” or “candidate message” refers to a messagethat has the potential or is in the running to be published ordistributed to users. For example, a candidate advertisement can be anadvertisement that has not yet been provided to a publisher oradvertiser for display. In like manner, a “candidate message element”refers to a message element that has the potential or is in the runningto be a part of a message that is to be published or distributed. Insome embodiments, a message element is a candidate message element whenit is assigned a contribution score above a threshold. In otherembodiments, a message element is a candidate message element by beingincluded in a message for calculating a message effectivenessprediction.

The term “machine learning model” refers to a model that is used formachine learning tasks or operations. A machine learning model cananalyze one or more input messages. In various embodiments, a machinelearning model can receive an input and based on the input identifypatterns or associations in order to predict a given output (e.g.,predict that a message input will have a particular conversion rate).Machine learning models can be or include any suitable model, such asone or more: neural networks, word2Vec models, Bayesian networks, RandomForests, Boosted Trees, etc. “Machine learning” as described herein, inparticular embodiments, corresponds to algorithms that parse or extractfeatures of historical data (e.g., a data store of historical messages),learn (e.g., via training) about the historical data by makingobservations or identifying patterns in data, and then receive asubsequent input (e.g., a current message) in order to make adetermination, prediction, and/or classification of the subsequent inputbased on the learning without relying on rules-based programming (e.g.,conditional statement rules).

A “session” can be initiated when a user logs into a site, or isrecognized by the site as a returning user who is associated withactivity on the site. For example, a site may recognize a returning uservia cookies. A session can be considered terminated after a user logsoff of a site or becomes inactive (or idle) on the site for apredetermined period of time. For example, after 30 minutes of idle timewithout user input (i.e., not receiving any queries or clicks), thesystem may automatically end a session.

Overview

Existing technologies that generate the effectiveness of messages havevarious shortcomings. For example, existing techniques represent messagefeatures or words via a representation which combines N-grams with aweighted category list. These technologies include a model that predictsan occurrence of a word based on a sequence of N-words or the occurrenceof its n−1 words and the word's category affiliation. However thisrepresentation lacks the capability of calculating similarity betweendifferent messages or words in a message if there are words unseen inthe training data. Consequently, based on this feature representation,predictive insights are solely implemented by the word's categoryaffiliation based on the required category list. For example, iftraining data did not include the word “smartwatch”, the system may usea data structure, such as a hash map, to map this term to its categoryof “watch”. Accordingly, predictions would be based on the category ofthe word instead of the word itself.

In these existing technologies, the performance of the predictionsheavily depends on the statistical importance of the word category listfeatures. However, in some languages, such as Japanese, word categoryfeatures are far less important compared to N-gram features, which meansthat category-based wording suggestions may perform poorly for languagessuch as Japanese. Moreover, predictions based on categories of wordsinstead of the words themselves risk prediction inaccuracy regardless ofthe natural language that the message is in. For example, estimatingthat a conversion rate is high because an advertisement used the word“watch” may be misleading because perhaps the actual word “smartwatch”is more correlated with a higher conversion rate than “watch” butbecause the system may not locate “smartwatch” in the training data,this substitute word would have to be used, which may causeinaccuracies.

Various existing technologies also incorporate inadequate models thatrequire large training sets and consequently a lot of memory storage andCPU cycle execution (e.g., fetch, decode, read, execute). For example,some models use Logistic Regression with L1 regulation to perform modeltraining. Although this method can reduce the quantity of covariates inthe final prediction formula and have satisfactory explanationinferences, this model requires a relatively large training data set inorder to get satisfactory prediction performance. Accordingly, largequantities of memory is consumed in order to store the excess trainingdata. Moreover, execution of an input to feed the model requiresanalyzing the input against the excess training data to makepredictions, thereby taxing CPU, which causes significant computinglatency and potential CPU breakage or other problems, such as raceconditions.

Various existing technologies generate alternative word candidates orestimate conversion rates by using word categories and frequent termsassociated with the word categories. The categories are often sortedbased on the coefficients of the learned regression model. Although thisgives users an indication of what word category plays important roles tohistoric conversion rates, the alternative word candidates are fullyrestricted to terms which existing in the training data set. New orunused words in messages cannot be included because of the lack oftraining on these words. Consequently, users are left without adequateinsight into what words to use in future messages.

Embodiments of the present invention relate to generating messageeffectiveness predictions and/or other insights associated with messagesin a manner that resolves the shortcomings of conventional techniques.In certain embodiments, candidate messages are processed through anatural language processing (NLP) component to parse the candidatemessage into message elements (e.g., a word list) for furtherprocessing. For example, a message containing a plurality of words canbe processed by a NLP library (e.g., MeCab) where each message is parsedinto its words and each word can be tagged with a Part of Speech (POS)identifier (e.g., noun, adverb, adjective, etc.). These libraries caninclude rich language libraries, such as MeCab, which segments text inJapanese. These libraries can be configured to not place emphasis onword category features like existing technologies. In this way, messageeffectiveness predictions are not limited to languages, such as English,and can be accurate for messages that are in different languages.

These message elements are then converted to a vector or set of vectors(e.g., real numbers), which can be used as input to a machine learningmodel to make predictions of message effectiveness. For example,Word2Vec word embedding vector models can be used to map each messageelement into a vector. Then all word vectors for a single marketingmessage are averaged to form the vector representation in vector space,which is described in more detail herein. In this way, other machinelearning models can take these vectors as input and also other words notlocated in the training can act as substitute candidates for replacingmessage elements. Such substitutes can be found in other vectors of theword embedding vector models based on a distance to other words.

In certain embodiments, a message effectiveness prediction, such as aconversion rate prediction, can then be made for the message. Forexample, based on historical messages and their associated conversionrates, certain words may surpass a popularity threshold or otherwise beassociated with certain conversion rates. Accordingly, an incomingmessage may use one or more various message elements that havehistorically been associated with particular conversion rates.Consequently, a predicted conversion rate can be generated based onpatterns and associations of the historical messages and conversionrates. In various embodiments, these prediction models do not require asmuch training data to make predictions compared to conventionaltechnologies. For example, the prediction models used in certainembodiments employ random forest regression models instead of logisticalregression with L1 regulation used in prior art technologies. Randomforest regression models require less training data because these modelsuse ensemble learning and because of the iterative voting nature ofrandom forest models that can use the same training data for differentdecision tree tests, which can lead to different decision tree leaf nodedecisions.

A contribution score can be made for each message element (e.g., word)of the candidate message, which may be indicative of the importance orrelevance for the individual message element to the overall predictedmessage effectiveness. This allows for better insights associated withthe predicted message effectiveness unlike existing technologies. Insome embodiments, other message elements not originally within themessage can be identified and provided as candidates to replace or to beadded to message elements already located within the message. In thisway, a message can be selected and/or altered so that it is more likelyto be effective, such as being more likely to have a high conversionrate.

Various embodiments of the present disclosure improve conventionaltechnologies because: they do not rely on category lists; they cangenerate better replacement candidates for message elements when data isnot located in the training data; and they are not limited to certainnatural languages, such as English. For example, various embodimentsimprove these technologies by implementing word embedding vector models.A word embedding vector model converts natural language text intovectors (e.g., real numbers) and maps the vectors into vector space. Invarious instances, these vectors are mapped in vector space according totheir semantic similarity to other vectors that represent other text. Inthis way, for example, if there is a missing word in the training data,such as “smartwatch”, a semantically or contextually similar word can beutilized as a replacement, such as “computerized watch” or the like canbe used instead of or in addition to the category “watch” as describedabove. In this way, predictions can be more accurate. Further, variousembodiments allow the same word in different languages to be representedas the same vector and orientation in vector space. In this way, no onelanguage is required and other languages, which do not depend oncategories, such as Japanese, can easily be utilized.

Embodiments of the present disclosure improve prior art technologies byreducing memory consumption, causing better CPU performance (e.g., lessCPU cycles are performed, leading to less likely race condition events,brakeage, etc.), and even in some cases reducing network bandwidthconsumption. This is because the system does not require a largetraining data set and can conversely provide satisfactory predictionperformance using relatively small training data sets.

Some embodiments of the present disclosure use models, such as randomforest regression models as the machine learning technique for modeltraining. This technique benefits from the capability of incorporatingEnsembled learning. Ensembled learning helps improve machine learningresults by combining several models. That is, various meta-algorithmscombine multiple machine learning techniques into one predictive modelin order to decrease variance or bagging, bias or boosting, and/orimprove predictions or stacking. In this way, there can be betterprediction performance using a relatively small training data setcompared to existing technologies.

Various embodiments of the present disclosure improve these technologiesby generating rich prediction insights. For example some embodimentsrecommend using certain alternative words, such as synonyms, to replacecertain words in a message. In this way certain words can be identifiedas contributing the least or negatively to conversion rates and thosewords can be replaced with alternative words. Additionally oralternatively, message elements that have a contribution score over athreshold can be added to existing candidate messages without any of thecandidate message's message elements being replaced. Likewise, messageelements that do not have a contribution score over a threshold can beremoved from existing candidate message without any of the candidatemessage's message elements being replaced. In some embodiments, acontribution score is calculated for each word in a message, which isindicative of the importance of that word in the overall conversion rateor message effectiveness. In some embodiments, only alternative wordsuggestions (e.g., synonyms) with a score higher than the word that doesnot contribute very well to the overall conversion rate are included ina recommendation for replacement. In this way, users can see what wordsin messages are and are not contributing to message effectiveness orconversion rates and see what replacement words could be used to obtainbetter message effectiveness or conversion rates.

Example Systems for Generating Message Effectiveness Predictions andInsights

Turning now to FIG. 1, a schematic depiction is provided illustrating anexample system 100 for providing message effectiveness predictions andgenerating insights in which some embodiments of the present inventionmay be employed. It should be understood that this and otherarrangements described herein are set forth only as examples. Otherarrangements and elements (e.g., machines, interfaces, functions,orders, groupings of functions, etc.) can be used in addition to orinstead of those shown, and some elements may be omitted altogether.Further, many of the elements described herein are functional entitiesthat may be implemented as discrete or distributed components or inconjunction with other components, and in any suitable combination andlocation. For example, there may be multiple servers 110 that representnodes in a cloud computing network. Various functions described hereinas being performed by one or more entities may be carried out byhardware, firmware, and/or software. For instance, various functions maybe carried out by a processor executing instructions stored in memory.

The system 100 depicted in FIG. 1 includes a message effectivenessserver (“server”) 110 that is in communication with a network 130. Thesystem 100 further includes a client device (“client”) 120 that is alsoin communication with the network 130. Among other things, the client120 can communicate with the server 110 via the network 130, andgenerate for communication, to the server 110, a request to generate aneffectiveness prediction of one or more words in a message (e.g., amarketing message). The request can include, among other things, amessage input and a request to predict the conversion rate of themessage and perform analysis on individual message elements, asdescribed in more detail below. In various embodiments, the client 120is embodied in a computing device, which may be referred to herein as aclient device or user device, such as described with respect to thecomputing device 1000 of FIG. 10.

The server 110 can receive the request communicated from the client 120,and can search for relevant data via any number of data repositories towhich the server 110 can access, whether remotely or locally. A datarepository can include one or more local computing devices or remotecomputing devices, each accessible to the server 110 directly orindirectly via network 130. In accordance with some embodimentsdescribed herein, a data repository can include any of one or moreremote servers, any node (e.g., a computing device) in a distributedplurality of nodes, such as those typically maintaining a distributedledger (e.g., blockchain) network, or any remote server that is coupledto or in communication with any node in a distributed plurality ofnodes. Any of the aforementioned data repositories can be associatedwith one of a plurality of data storage entities, which may or may notbe associated with one another. As described herein, a data storageentity can include any entity (e.g., retailer, manufacturer, e-commerceplatform, social media platform, web host) that stores data (e.g.,names, demographic data, purchases, browsing history, location,addresses) associated with its customers, clients, sales, relationships,website visitors, or any other subject to which the entity isinterested. It is contemplated that each data repository is generallyassociated with a different data storage entity, though some datastorage entities may be associated with multiple data repositories andsome data repositories may be associated with multiple data storageentities. In various embodiments, the server 110 is embodied in acomputing device, such as described with respect to the computing device1000 of FIG. 10

The server 110 can employ a variety of natural language processing,machine learning, text analysis, context extraction, and/or othertechniques for evaluating the message input on the client device 120. Invarious embodiments, the server 110 can calculate one or more scoresthat corresponds to a confidence level or prediction of the messageeffectiveness. The scores and or prediction can then be communicated tothe requesting client 120, which can cause the client 120 to provide fordisplay the scores and/or one or more predictions associated with themessage input as a result to the received request.

Referring now to FIG. 2, a block diagram is provided showing aspects ofan example computing system architecture suitable for implementing anembodiment of the disclosure and designated generally as a messageeffectiveness system 200 for generating effectiveness scores of one ormore words in a message and providing insights. FIG. 2 is not intendedto be limiting and other arrangements and elements can be used inaddition to or instead of those shown in system 200, and some elementsmay be omitted altogether for the sake of clarity. Further, as with thesystem 100 of FIG. 1, many of the elements described herein arefunctional entities that may be implemented as discrete or distributedcomponents or in conjunction with other components, and in any suitablecombination and location. The functionality of system 200 may beprovided via a software as a service (SAAS) model, e.g., a cloud and/orweb-based service. In other embodiments, the functionalities of system200 may be implemented via a client/server architecture. In someembodiments, there are more or less components than illustrated in thesystem 200. For example, in some embodiments, the system uses anunsupervised machine learning algorithm such that there is no modeltraining component 206.

In embodiments, each of the components within the system 200 are locatedwithin the system 100 of FIG. 1. For example, in some embodiments, themodel loading component 216, the morphological parsing component 202,the vectorization component 204, the model training component 206, theconversion prediction component 208, the word contribution scoringcomponent 210, the alternative word contribution score component 212,and the consolidation component 214 are modules located within theserver 110 (or multiple servers) of FIG. 1. In some embodiments, some ofthese components are located within the client device 120 of FIG. 1. Asdiscussed throughout, various embodiments of the present disclosuregenerate message effectiveness scores (e.g., conversion rate scores) forone or more message elements of a message. The components within thesystem 200 can be used to accomplish this, as described herein.

The morphological parsing component 202 parses or tokenizes each messageinto message elements (e.g., words), analyzes morphological and/orsyntactic properties of each message element, and generates tags basedon the properties of the message. In this way, natural language messagescan be understood and analyzed by machines. In some embodiments, themorphological parsing component 202 segments each message intomorphemes, which is the smallest grammatical unit in language. Amorpheme is a word or part of a word that has meaning. A morpheme cannotbe divided into smaller meaningful segments without changing its meaningor leaving a meaningless remainder, and a morpheme has an identicalmeaning in different verbal environments. For example, although the word“carpet” can be broken up into two syllables—“car” and “pet”—these wordshave different meanings than the word carpet. Therefore, carpet is onlyone morpheme of “carpet”. In this way, breaking up words into morphemesand analyzing them allows the system to study the internal structure ofwords and the relationships among other words. This may allow a systemto understand a message, the message elements in a message, and therelationship between the message elements.

“Tokenization” in various embodiments means to segment the message intowords, sentences, symbols, and/or other elements of the message.“Syntax” or syntactic properties refers to the structure of the message(as opposed to the semantics or meaning of the message or charactersequences), such as the structure of a sentence. This can include a setof rules for analyzing a message, such as word and/or part of speech(POS) order. For example, for the sentence “the girl jumped happily”,the syntax may correspond to a word order where the structure issubject-verb-adverb (or subject, verb, object, etc.). In variousembodiments, the POS of a message element is tagged. In someembodiments, the semantics or meaning of messages or message elements inmessages are not analyzed. In these embodiments, only the syntacticproperties are analyzed.

The vectorization component 204 generates vectors by converting eachmessage into a vector representation. In some embodiments, thevectorization component 204 takes as input, the output generated atmorphological parsing component 202. A “vector” as described herein is aset (e.g., an array) of real numbers (e.g., integers) that togetherrepresent a given message or message element. In some embodiments, eachreal number represents a feature or sub-element of a message. Forexample, an input vector can be a tuple of one or more values, such asscalars (e.g., [0, 0, 1, 0, 0]) where each value corresponds to whethera given word is present in the message. In some embodiments, thevectorization component 204 generates vectors via a word embeddingvector model. In this way, each embedding vector can represent a pointor coordinate in n-dimensional space, where n is the number ofdimensions. Accordingly, each message element can be mapped into vectorspace such that contextually similar (e.g., semantically similar) wordscan be located if, for example, certain message elements are not locatedin training data. Word embedding vector models are described in moredetail below.

The model training component 206 performs machine learning modeltraining. In various embodiments, machine learning model trainingincludes the process of implementing one or more machine learningalgorithms with training data (e.g., a set of historical messages) tolearn from. These learning algorithms may find patterns or associationsin the training data that map the input to the target (e.g., the outputprediction desired). For example, it can be determined that 90% of themessages that were used where a user was converted for a particularbrand, a particular word was always used. Responsively, the targetprediction can be that any message that uses the particular word willhave a higher conversion rate. In various embodiments, training issucceeded by the process of repeatedly running or feeding test data(e.g., messages) through the model in order to tune the model until themodel makes adequate predictions. In some embodiments, this includesdetermining the values for all weights (e.g., determining how importanta word is for conversion by weighting the word with a particular value).In various embodiments, training is succeeded by testing, where the dataset corresponds to data points that the model has not processed before.Based on the patterns and associations made with the test data,predictions can be made for the test data. In this way, a user can seeif the model is predicting adequately by counting true positives, truenegatives, false positives, etc. In various embodiments, the modeltraining component 206 takes, as input, the output provided by thevectorization component 204, such as a vector representation of themessage.

The word contribution scoring component 210 scores each individualmessage element. This score is indicative of how important, relevant, orweighted each message element is for message effectiveness predictions.For example, using the illustration described above, if an input messagecontained the particular word that over 90% of the messages associatedwith conversion also used, the conversion prediction component canpredict that there is a high likelihood of conversion for that word.Consequently, that word can be scored and/or weighted accordingly. Thisprediction can be made for each word in a message. In this way,prediction scores can be adjusted or weighted based on each message itemanalyzed in each message. For example, using the illustration above,even though the message contains the particular word, it may alsocontain other words that are identified as being associated with lowconversion rates. Responsively, the prediction score or weights can bereduced.

The conversion prediction component 208 generates an overall messageeffectiveness prediction (e.g., a predicted conversion rate) for a givenmessage. In some embodiments, this prediction is made based oninferences or predictions made by the model training component 206. Forexample, in a deployed machine learning model environment, an incomingmessage can be vectorized and processed by the conversion predictioncomponent 208 by identifying each message element in the message,identifying patterns or associations of the message element as indicatedin the training data, and responsively making predictions. In someembodiments, the overall message effectiveness prediction is generatedbased on aggregating (e.g., summing) each individual contribution scoresas generated by the word contribution scoring component 210. In someembodiments, each score is multiplied by its weight for each messageelement.

The alternative word contribution scoring component 212 scoresalternative message elements that are not originally contained in amessage. The alternative word contribution scoring component 212 canalso substitute message elements for other elements if those othermessage elements have a score over a threshold (e.g., a particular wordcontribution score generated via the word contribution scoring component210). In this way, the substitute message elements can act asreplacements or replacement candidates for certain message elements in aparticular message. Additionally or alternatively, the alternative wordcontribution scoring component 212 can add or subtract message elementswithout replacement depending on the contribution score. In this way,message elements can become candidates for addition to or subtractionfrom a message. For example, in some embodiments, high scoring synonyms(e.g., as found in a lookup table) of certain words that have low wordconstitution scores can be used as replacements in a message. In someembodiments, the alternative word contribution scoring component 212determines alternative message elements based on running originalmessage elements through a word embedding vector model (e.g., the samemodel used by the vectorization component 204). In this way,semantically similar or other contextually similar words compared to theoriginal word is selected, which is described in more detail below.

The consolidation component 214 consolidates the outputs of the wordcontribution scoring component 210 and/or the alternative wordcontribution scoring component 212, among other things, to generatepredictive insights. For example, this component can cause display(e.g., within the client device 120) of: a predicted conversion rate ofa message, each word in the message and their corresponding contributionscores, and/or high contribution score synonyms or replacementcandidates for words whose contribution scores are lower than zero.

The model loading component 216 loads the model from the storage 225,which is saved during training (e.g., via the model training component206). Storage 225 generally stores information including data, computerinstructions (e.g., software program instructions, routines, orservices), and/or models used in embodiments of the technologiesdescribed herein. In an embodiment, storage 225 comprises a data store234 (or computer data memory). Data store 234 may store a stream ofsequence and/or labelled training data. Storage 225 may also includepattern inference logic 232. Briefly, pattern inference logic 232 mayinclude machine learning, statistical, and/or artificial intelligencelogic that is enabled to detect, infer, or otherwise recognize patternsand or features within data. For instance, pattern inference logic 232may infer explicit, latent, or hidden pattern recognition features orpatterns within the training data. Further, although depicted as asingle data store component, storage 225 may be embodied as a data storeor may be in the cloud.

By way of example and not limitation, data included in storage 225, aswell as any user data, may generally be referred to throughout as data.The data within the storage 225 may be structured (e.g., tabular ordatabase data), semi-structured, and/or unstructured (e.g., data withinsocial media feeds, blogs, etc.). Any such data may be sensed ordetermined from a sensor (referred to herein as sensor data), such aslocation information of mobile device(s), smartphone data (such as phonestate, charging data, date/time, or other information derived from asmartphone), user-activity information (for example: app usage; onlineactivity; searches; voice data such as automatic speech recognition;activity logs; communications data including calls, texts, instantmessages, and emails; website posts; other records associated withevents; etc.) including user activity that occurs over more than oneuser device, user history, session logs, application data, contactsdata, record data, notification data, social-network data, news(including popular or trending items on search engines or socialnetworks), home-sensor data, appliance data, global positioning system(GPS) data, vehicle signal data, traffic data, weather data (includingforecasts), wearable device data, other user device data (which mayinclude device settings, profiles, network connections such as Wi-Finetwork data, or configuration data, data regarding the model number,firmware, or equipment, device pairings, such as where a user has amobile phone paired with a Bluetooth headset, for example), gyroscopedata, accelerometer data, other sensor data that may be sensed orotherwise detected by a sensor (or other detector) component includingdata derived from a sensor component associated with the user (includinglocation, motion, orientation, position, user-access, user-activity,network-access, user-device-charging, or other data that is capable ofbeing provided by a sensor component), data derived based on other data(for example, location data that can be derived from Wi-Fi, Cellularnetwork, or IP address data), and nearly any other source of data thatmay be sensed or determined as described herein. In some respects, dataor information (e.g., the requested content) may be provided in usersignals. A user signal can be a feed of various data from acorresponding data source. For example, a user signal could be from asmartphone, a home-sensor device, a GPS device (e.g., for locationcoordinates), a vehicle-sensor device, a wearable device, a user device,a gyroscope sensor, an accelerometer sensor, a calendar service, anemail account, a credit card account, or other data sources.

As noted above, pattern inference logic 232 may contains the rules,conditions, associations, classification models, and other criteria toexecute the functionality of any of the components, modules, analyzers,generators, and/or engines of systems 200. Storage 225 may includesoftware identity mapping data 240. The software identity mapping data240 may contain software item identifiers or normalized softwareidentifiers. For example, the software identity mapping data 240 mayinclude dictionaries or databases or words as found in a word embeddingvector model.

FIG. 3 is a block diagram of an example system 300 of a training phasein which particular aspects of the present disclosure are employed in,according to some embodiments. In some embodiments, some or each of thecomponents represent some or each of the components as indicated in thesystem 200 of FIG. 2. The training phase is a phase when historicalmessages are analyzed and one or more machine learning models aretrained with the historical message data set 332. In variousembodiments, the historical message data set 332 includes messages andother metadata associated with the messages. For example, each messagemay include metadata indicating number of conversions from the message,conversion rates associated with the message, total number of visitorsto a publisher website where the message was displayed, number of clickson the message, etc.

The morphological parsing component 302 (which may correspond to themorphological parsing component 202 of FIG. 2) applies morphologicalanalysis to the data within the historical message data set 332. Invarious embodiments, the data set 332 represents a history of messages(e.g., several advertisement messages that have been caused to bedisplayed on a publisher's website and user device). In someembodiments, the morphological parsing component 302 converts eachmessage into a word list and tags each word with a POS identifier (e.g.,Noun, Verb, Adjective, Adjectival Noun, etc.). In some embodiments, theword list takes on a Comma Separated Values (CSV) file. The CSV file isa plain text file where every set of data is separated by commas. Forexample, the CSV file may include 4 columns. The first column may be amessage column where the actual message content of messages are stored.The second column may be the timestamp or date when the message isprovided on publisher sites or displayed on user devices. The thirdcolumn may be message impressions, such as pay-per-click impressions. Amessage impression is a measurement, such as quantity of responses froma web server to a page request from the user browser. The fourth columnmay specify how many or the proportion of conversions (e.g., thepurchase of the advertised item) that occurred while the message wasdisplayed or otherwise in connection with the message.

In some embodiments, in response to the CSV file being generated thatincludes individual words of messages, a Natural Language Processing(NLP) library 334 is loaded to perform morphological analysis to eachmessage (or words in the message) of the CSV file. In variousembodiments, the NLP libraries perform the syntactic and then POStagging as described above, such as tokenizing each message element froma message and responsively tagging the POS for every word within themessage. For example, the NLP libraries may be or include MeCab andJuman++. MeCab is an open-source text segmentation library for use withtext written in the Japanese language. Juman++ is a Japanesemorphological analyzer. Although these NLP libraries are described interms of Japanese, it is understood that the NLP libraries can exist inany suitable natural language, such as Spanish, French, English, etc.The output of the morphological parsing component 302 is the output 338,which contains each parsed natural language message element in a messagecoupled with a POS tag for every message element.

In various embodiments, the vectorization component 304 (which maycorrespond to the vectorization component 204 of FIG. 2) receives theoutput at 338 and converts the natural language message elements of eachmessage into a vector representation of real numbers. In someembodiments, a word embedding vector model 336 is used, such asWORD2VEC, to map each message element into a vector within vector space.All of the vectors that represent a corresponding message element areaveraged or otherwise combined to form the vector representation for theentire corresponding message. This represents the output message vector340. For example, for each message, all of the message elements areconverted into integers and are linearly combined such that the entirecorresponding message is mapped in vector space. In this way, similarmessage, such as those with only 1 or 2 different words, would be closein distance, whereas other messages with very different words would befurther distance away in vector space. Word embedding vector models aredescribed in more detail below.

The model training component 306 (which may corresponding to the modeltraining component 206 of FIG. 2) performs machine learning modeltraining using the vectorized message data set (i.e., the output messagevector 340). In this way, patterns and associations are determinedwithin the historical message data set, such as number of conversionsassociated with message elements. In some embodiments, Random ForestRegression is used as the learning model for training. In someembodiments, K-fold cross validation is applied to assess performance.K-fold cross validation is a method to split training and test data(together forming K data set) to assess whether the machine learningmodel would generalize to an independent data set to determine howaccurate the predictions the model will give. In this way, problems,such as overfitting can be identified.

For K-fold cross validation, first the K data set is partitioned to Kchunks (e.g., groups of messages and other metadata, such as conversionstatistics). That is, the K data set is shuffled randomly and then thedata set is split into K groups. For each group (i.e., iteratively runthrough each group): identify the group as a test data set and take theremaining groups as a training data set. In this way, each group will bea test data set at some point. One or more models are fit on thetraining set and evaluate it on the test set. Then each performance foreach K group can be aggregated (e.g., averaged) in some embodiments.This allows models to be chosen. The model that performs well or over athreshold performance on the training data is selected. In someembodiments, the model with the best performance is picked and passed tothe next processing step. In some embodiments, Mean Absolute Error (MAE)is used as the metric measurement to model performance to determine“best” performance. The model storage component 350 receives the “best”performance model generated in the model training and stores it to themodel storage 325 so that this model can be used in a deployed settingon actual data sets.

FIG. 4 is a block diagram of a prediction phase system 400, according tosome embodiments. Prediction phase occurs in a deployed modelenvironment when predicted message effectiveness or other insights areprovided for a given message input. This message input is the only inputat this stage. The system uploads a message and then predicts themessage effectiveness of the message and message element suggestions, asdescribed in more detail herein. In some embodiments, the system 400represents some or each of the corresponding components of the system200 and/or system 300.

The model loading component 416 (which may correspond to the modelloading component 216 of FIG. 2) loads the model from the model storage425 (e.g., persistent storage). In some embodiments, the storage 425represents the same storage 325 as indicated in the training phasesystem 300 of FIG. 3. Accordingly, the model loading component 416 loadsthe model selected in response to performing k-fold cross validation,which was saved in the training phase.

The morphological parsing component 402 (which may correspond to themorphological parsing component 202 of FIG. 2) applies morphologicalanalysis on the message input 432 by converting the message into a wordlist and tags each message element with a POS tag. After reading themessage input 432, a NLP library 434 (e.g., MeCab or Juman++) is loadedto perform morphological analysis on the message input 432. For example,a user may input the message “Brand A Irridium sunglasses for sale 10%off”, which represents the message input 432. In response to breaking upeach word into morphemes and analyzing syntax, the NLP library 434 maytokenize or segment the input message into its constituent word partsand responsively provide a POS tag—i.e., Brand A-noun, Irridium-noun,sunglasses-noun, sale-verb, 10% off-adjective (i.e., the message wordsand POS tags 438). In some embodiments, alternative or additionalanalyses are performed, such as indicating the object, subject, etc. orother syntactic elements of the message indicative of structuralanalysis of the message.

The vectorization component 404 (which may correspond to thevectorciation component 204 of FIG. 2) converts the parsed and taggedmessage into a vector representation. For example, a word embeddingvector model 436 can be used to map each word into a vector. Then allthe vectors can be averaged or otherwise linearly combined to form avector representation in vector space. For example, using theillustration above, the message “Brand A Irridium sunglasses for sale10% off” can be represented in vector space as [1, 4, 8], whichrepresents the message vector 440. This vector can represent differentdimensional values in vector space, which is described in more detailherein.

In some embodiments, it is determined that the loaded model derived fromthe model storage 425 (and/or the training/testing data) does notinclude message elements that the input message contains. Unlike theexisting technologies described above, various embodiments map themessage elements into vectors in a vector space of a word embeddingmodel even if certain message elements are not located in the trainingdata. For example, in the message “Brand A Irridium sunglasses for sale10% off”, the word “Irridium” or any other word may not be located inthe training data. Accordingly, this word is run through a wordembedding vector model to determine its vector representation in vectorspace, which may be [3,4] (e.g., indicating “reflective lens”).Responsively, the vectors [3,4] representing this term are run throughthe machine learning model (e.g., Random Forest) for messageeffectiveness predictions.

The conversion prediction component 408 (which may correspond to theconversion prediction component 208 of FIG. 2) predicts the overallmessage effectiveness or conversion rate for the message input 432. Itreceives the message vector 440 from the vectorization component 404 andthen uses the loaded machine learning model from the model storage 425to make the predictions. For example, using a loaded Random ForestRegression model, the conversion prediction component 408 may predictthat the message “Brand A Irridium sunglasses for sale 10% off” (nowrepresented as a vector) has a 23% predicted conversion rate based onhistorical messages that used the same or similar words, messageelements, combinations of message elements, etc. and their associatedconversion rates.

The word contribution scoring component 410 (which may correspond to theword contribution scoring component 210 of FIG. 2) calculates themessage effectiveness contribution score for each message element in themessage input 432. This is indicative of how important or relevant agiven message element in message is for the overall messageeffectiveness prediction. The assumption is that there are certainmessage elements or combinations of message elements that are morelikely to cause or be associated with higher conversion rates. Forexample, the exact discount value and the product may be indicative of aparticular conversion rate. Using the illustration above, for themessage “Brand A Irridium sunglasses for sale 10% off”, “Brand A” may beassociated with a 40% conversion rate (e.g., all messages within thehistorical data with this term had a 40% conversion rate) and “10% off”may be associated only with a 12% conversion rate. This process mayoccur for each word and/or combination of words in this message.

The alternative word contribution scoring component 412 (which maycorrespond to the alternative word contribution scoring component 212 ofFIG. 2) calculates scores for alternative message elements that act asreplacement candidates for message elements in a message. Alternativelyor additionally, the alternative word contribution scoring component 412calculates scores for alternative message elements that are added to orremoved from (or become candidates for such addition or removal)messages without replacement based on their contribution scores. In someembodiments, the alternative message elements are message elements thatare semantically or otherwise contextually similar to existing messageelements as determined by a word embedding vector model (e.g., the samemodel used by the vectorization component 404). Alternatively, thealternative message elements are synonyms of certain words as determinedby a synonym lookup table data structure or the alternative worddictionary 442. In these embodiments, certain words can be mapped to itssynonym via a lookup table structure. In various embodiments, only thosemessage elements that have a contribution score lower than a thresholdare mapped to other alternative words that are candidates to replaceparticular message elements. In an example illustration, for the message“Brand A Irridium sunglasses for sale 10% off”, the word “Irridium” mayhave a low contribution score of 1.2%, indicating that this word wasassociated with a small percentage of conversion rates in historicalmessages. Responsively, the alternative word contribution scoringcomponent 412 (and/or the vectorization component 404) can map “iridium”to a contextually similar word in vector space via a word embeddingvector model and/or map this term to its synonym via a lookup structure.Accordingly, the mapped word may be “reflective coating” or the like. Inresponse to this mapping, contribution scores can be generated for thereplacement candidate message element. If the contribution scores areabove a threshold, then candidates can be recommended as replacements.If not, then the process can repeat until a new candidate has a scoreover a threshold. Using the illustration above, it may be recommended toreplace the word “Irridium” with “reflective coating” and “10%” with“30%” based on the high contribution scores of the candidate wordreplacements. Accordingly, the new recommended message may be, “Brand Areflective lenses sunglasses for sale 30% off”.

The consolidation component 414 (which may correspond to theconsolidation component 214 of FIG. 2) consolidates the outputs of thecontribution scores of the original message elements and the added,removed, or replacement message element candidates in a singlepredictive insights 414 format, such as a single web or app page. Forexample, using the illustration above, the consolidation component 414causes display of the predicted conversion rate of the message “Brand AIrridium lense sunglasses for sale 10% off.” The consolidation component414 can also cause display of original message elements in the messageand their corresponding contribution scores. The consolidation component414 can also cause display of alternative message elements andcorresponding contribution scores that are replacement candidates forother words in the original message.

FIG. 5 is a schematic diagram illustrating how message vectorsassociated with messages are run through a word embedding vector model,according to some embodiments. In some embodiments, functionalitydescribed in FIG. 5 is performed by the vectorization component 202,302, and/or 402. FIG. 5 includes the training data 501, the messagevectors 507, and the vector space 509. The vector space 509 includesmultiple vectors (e.g., man, king) illustrated in natural language textfor convenience but are typically represented as vectors. It isunderstood that although the vector space 509 is a representation withparticular vectors and dimensions, more or less vectors and dimensionscan be present with different, more, or fewer string representations.

In some embodiments, the word embedding vector model is a Word2vecmodel. A word2vec model is a two-layer network model that runs one ormore input vectors (e.g., which represent a message element) through ahidden layer (i.e., a column-row matrix) and a projection layer (e.g., asoftmax classifier). Word2vec models predict target strings from sourcecontext words (i.e., via the Continuous Bag of Words (CBOW) algorithm)or inversely predict source-context words from target words (i.e., viathe skip-gram algorithm). In embodiments, when words are processedthrough a corresponding Word2vec or other word embedding model, thewords are numerically represented in a word embedding that showsassociated vectors (e.g., other groups of string identifiers) and thedistances from the string representations to each of those vectors,which is described in more detail below. For example, the string “male”can be represented as a “1” in vector space and the string “female” canbe represented as a “0” in vector space.

In order to plot data points or message element vectors within thevector space 509, the model is trained using the training data 501. Invarious embodiments, the training data 501 includes a large corpus ofunstructured data (e.g., documents, news articles, social media posts,news feeds, blogs), semi-structured, and/or structured data (e.g.,database values). The training data 501 is also an input of the wordembedding vector model. The training data 501 includes some or each ofthe words as found within the vector space 509—man, king, father, son,woman, queen, mother, daughter, Brand A, reflective coating, etc.

In some embodiments, the vector space 509 represents a “pre-trained”embedding. A pre-trained embedding is a static model that is generatedwithout feedback, retraining, or reference to the data sets being fedthrough it. For example, a user may download a static word embeddingvector model from an online source, which is already trained andincludes the vectors or data points already mapped in vector spaceaccording to semantic similarity between words. In other embodiments,the vector space 509 represents a “retrained” or trained embedding. Aretrained or trained word embedding model is an embedding that receivestraining feedback after it has received initial training session(s) andis optimized or generated for a specific data set (e.g. generate wordelement alternatives, etc.). For example, after initial data points areplotted to the one or more word embedding vector model, the system can“re-train” the word embedding vector model(s) a second time so that anyvectors or words (e.g., “Irridium”) in a future data set areconsistently mapped to its closest neighbor(s) (e.g., “reflectivecoating”, “lenses”) or other word according to the policy implemented.In some embodiments, retraining includes issuing feedback to make surethe correct data point pairing is utilized.

In order to map each of the words to its contextually appropriate pointsin the vector space 509, training algorithms are utilized. For example,in some embodiments, the word embedding vector model is trained usingthe maximum likelihood (ML) principle to maximize probability of thenext word w_(t) (i.e., “target”) given the previous words h (i.e.,“history”) in terms of a softmax function:

$\begin{matrix}{{P\left( {w_{t}❘h} \right)} = {{{softmax}\left( {{score}\left( {w_{t},h} \right)} \right)} = \frac{\exp\left\{ {{score}\left( {w_{t},h} \right)} \right\}}{\Sigma\mspace{14mu}{word}\mspace{14mu} w^{\prime}\mspace{14mu}{in}\mspace{14mu}{Vocab}^{\exp{\{{{score}{({w^{\prime},h})}}\}}}}}} & {{Equation}\mspace{14mu} 1}\end{matrix}$

Where score (w_(t), h) computes the compatibility of word w_(t) with thecontext h. The model is trained by maximizing its log-likelihood on thetraining set, that is maximizing

$\begin{matrix}\begin{matrix}{J_{ML} = {\log\mspace{14mu}{P\left( {w_{t}❘h} \right)}}} \\{= {{{score}\left( {w_{t},h} \right)} - {\log\begin{pmatrix}{\exp\left\{ {{score}\left( {w^{\prime},h} \right)} \right\}} \\{\Sigma\;{Word}\mspace{14mu} w^{\prime}{in}\mspace{14mu}{Vocab}}\end{pmatrix}}}}\end{matrix} & {{Equation}\mspace{14mu} 2}\end{matrix}$

This yields a properly normalized probabilistic model for languagemodeling. Each probability is computed and normalized using the scorefor all other words w′ in the current context h at every training step.In some embodiments, some models, such as word2vec, are trained using abinary classification objective, such as logistic regression, todiscriminate the real target words w_(t) from K noise words w″, in thesame context. Accordingly, instead of a softmax classifier, a noiseclassifier is used.

The output of the training algorithms and/or actual data input is eachof the positional words in the vector space 509, which shows groupingsof words that are semantically similar. “Semantic similarity” is thesemantic distance between two or more concepts (e.g., message elementsin integer form) according to a given ontology. An “ontology” is a classor data set that includes a set of attributes (e.g., words). Forexample, the tokens of man, king, father, son, woman, queen, motherdaughter may belong to an ontology of “human titles.” The “distance”between any two or more words in some embodiments is based on thesimilarity of their meaning and/or semantic content, as opposed to anysyntax similarity. For example, “car” and “far” are syntacticallysimilar but have two different definitions so they are not semanticallysimilar.

In some embodiments, the output as represented in the vector space 509is plotted in response to the word embedding vector model receiving andplotting points associated with the operations described with respect toa vectorization component For example, the message list that includesthe message “Brand A Irridium sunglasses sale 10% off” may first beconverted into input vectors via an input vector encoding (e.g., one hotencoding). For example, the word “Brand A” may be converted into thevector representation [1,0,0,0,0]. This vector representation shows fivedimensions where each value corresponds to the ordered message elementsin the message and whether the message element is TRUE or present.Because “Brand A” is the word being run through the word embeddingvector model, the integer 1 is used to indicate its representation.“Brand A” does not contain any of the other words so the other vectorsare represented as 0. Then the output embedding vector representation[1,2], which shows 2 dimensions, may be generated, which is indicativeof the actual coordinates that the “Brand A” vector will be plotted invector space 509 based on semantic similarity to other words and/oraveraging or otherwise combining the output embedding vectors for all ofthe words within the message vectors 507.

In various embodiments, each message element in the message vector 507is likewise converted into an input vector representation and output asanother representation of a vector, which acts as coordinates within thevector space 509. For example, as illustrated in the message vectors507, the word “Irridim” has in input vector of [0, 1, 0, 0, 0], where 1represents Irridium or TRUE and because it does not contain any of theother words in the message, every other value is represented as 0. Thenthe output word embedding vector [3,4] is generated to use ascoordinates in the vector space 509. As illustrated both in the vectorspace 509 and the output embedding vector, “sunglasses” and “iridium”are near each other in distance based on the closeness of the vectors[3, 4] and [3,6].

The distance between any two vectors or words is measured according toany suitable method. For example, in some embodiments, automated cosinesimilarity is used to compute distance. Cosine similarity is a measureof similarity between two non-zero vectors of an inner product spacethat measures the cosine of the angle between the two non-zero vectors.No similarity is expressed as a 90 degree angle, while total similarity(i.e., the same word) of 1 is a 0 degree angle. For example, a 0.98distance between two words reflects a very high semantic similaritywhile a 0.003 distance reflects little semantic similarity. Asillustrated in the vector space 509, the cosine similarity between “man”and “king” and “woman” and “queen” are the same cosine distance, thusking in certain situations is semantically similar to queen given theinputs of man and woman. In some embodiments, the distance isrepresented as an average distance or the distance between a particulartoken in vector space 509 and an average of query terms. In someembodiments, the distance is represented via fuzzy matching, or thedistance of closest token to a query term.

After the training data 501 is run through the training algorithm andrepresented as the vector space 509, some or each message element of themessage “Brand A iridium sunglasses sale 10% off” (e.g., which maycorrespond to a currently analyzed message in a deployed model) is runthrough the word embedding vector model and plotted or located in thevector space 509. For example, as illustrated in FIG. 5, the messageelement “Irridium” is placed/found in the vector space 509 according tothe ontology it belongs to and/or its semantic similarity to other wordsor data points. After the placing or finding the message element“Irridium” in vector space, its closest neighbor is located and/orclosest neighbor at a particular directional distance. As illustrated inthe vector space 509, “reflective coating” and “lenses” are the closestneighbor in terms of distance.

The distance threshold 505 illustrates scoring thresholds, statisticsgeneration thresholds, and/or result candidate thresholds. The threshold505 may correspond to a threshold distance each word may be from a term(e.g., “reflective lenses”) to score and/or provide results. Forexample, man and king may be too far for the system to score thosetokens for word replacement candidates. Although the distance threshold505 is illustrated as encompassing only a few select set of words, it isunderstood that it can encompass any quantity of terms associated withany particular distance. In some embodiments, FIG. 5 represents orincludes a word-category co-occurrence matrix (e.g., a compilation ofvector spaces). A matrix includes one or more vectors of a first vectorspace multiplied by one or more vectors of a second vector space. Thisallows rows within the vector space to be normalized for summing to 1 tobecome a probability distribution. Words or vectors can be comparedusing their category distribution.

In some embodiments, the word embedding vector model as indicated inFIG. 5 is used to map one or more message elements to other elements,which may be candidates for replacing message elements. For example, asillustrated in the vector space 509, “Irridium” may be replaced by“reflective coating” in a message based on the distance and/or direction(e.g., Euclidian distance) between these message elements. In someembodiments, the word embedding vector model is used to map words tovectors, which is particularly useful for missing words in trainingdata. For example, if a random forest regression model or other machinelearning model used to make message effectiveness predictions did nothave the word “Irridium” in the training data, a vector in the vectorspace 509 can be used as its vector representation, such as [4,5], whichmakes it possible to use this word as part of the input to the messageeffectiveness predictions. In these embodiments, words, such as“Irridium” are not necessarily replaced by other words in vector space,such as “reflective coating,” but the original input word's (e.g.,iridium) vectors are used as an input to feed another machine learningmodel for message effectiveness predictions.

FIG. 6 is a schematic diagram that illustrates an example random forestregression learning model 600, according to particular embodiments.Although FIG. 6 illustrates a specific random forest learning model,values with specific decision tree pathways, parameters, and tests, itis understood that any suitable value, node, test, and/or decisionpathway may exist. It is also understood that although there isrepresented a specific quantity of decision trees with a particularquantity of nodes, there may be any suitable quantity of decision treesand corresponding nodes in the learning model. In various embodiments,FIG. 6 represents the machine learning model used by the conversionprediction component 208, 308, and/or 408.

A random forest learning model includes various decision trees that eachpresent random and unique decision pathway tests to arrive at the sameset of results. More particularly, each decision tree within a randomforest has at least one different root or branch nodes and tests but thesame leaf node answers. Each decision tree is analyzed to determinewhich leaf node was traversed, as only one leaf node is traversed inparticular embodiments. The leaf node with the highest quantity oftraversals within the forest determines the output prediction (i.e.,majority vote wins). Each root node or branch node includes a “test”corresponding to a question that determines whether a TRUE or FALSEpathway is traversed. For example, referring to the root node 601, thetest or question is whether the message contains the message element“reflective coating.” If yes or TRUE, then there is traversal to thenode 603, if no or FALSE there is a traversal to node 605 for furtherprocessing. Accordingly, the traversal of each decision tree starts atthe root node, down through the branch nodes, until one of the leafnodes are reached. The specific leaf nodes that are reached depends onthe given tests within the root and branch nodes. In variousembodiments, each of these tests represent “rules” as described abovethat improve existing technologies in order to automatically predictshipping behavior.

The learning model 600 includes decision tees 606, 604, and 602. Eachdecision tree has the same leaf node answers or values of “conversionrate greater than 0.70”, “conversion rate less than or equal to 0.30”and “conversion rate greater than 0.30 and less than or equal to 0.70.”These represent the predicted message effectiveness, such as predictedconversion rate. For example, the decision tree 604 includes the leafnodes 603, 607, and 611, which represent the message effectivenesspredictions. Identical leaf nodes are also indicated in the otherdecision tees 606 and 602. The learning model 600 is used to generate aprediction of the conversion rate range that a particular message isassociated with. That is, if a user uses a particular message, thepredicted conversion rate may be made based on using the message.

An example illustration of how each decision tree works is indicated bydecision tree 604. The training data may indicate a history of messagesthat were published (e.g., by a publisher computing device andtransmitted by an advertiser entity) or otherwise distributed and theconversion rates associated with the messages. For example, multiplemarketing messages indicating various models, brands, styles of glassesfor sale, the conversion action (e.g., selecting the advertisement), andthe conversion rate may be stored as records in a database. The machinelearning model may identify a pattern that within the historicalmessages, the messages that contained the words “reflective coating” hadspecific higher conversion rates greater than 0.70 or 70%. The root node601 is responsively used for deciding whether an incoming messagecontains the words “reflective coating”. If the message contains thewords “reflective coating”, then the “TRUE” pathway is traversed (e.g.,a Boolean value is set to TRUE) and the system automatically predictsthat the conversion rate will be greater than 70%, meaning that becausethe message contains the words “reflective coating”, there is a highchance of conversion. However, if the incoming message does not includethe words “reflective coating” the FALSE pathway is traversed to reachnode 605 where another test is presented. In the incoming message, ifthe sale is not greater than 40% off (e.g., it is 10% off), then theFALSE pathway is traversed and the predicted conversion rate ispredicted to be less than or equal to 0.30 or 30% according to leaf node606. Alternatively, if the incoming message contained a sale that wasgreater than 40% off, then the TRUE pathway is traversed and thepredicted conversion rate is greater than 0.30% but less than or equalto 70%. The decision tree 604 illustrates that the “winning” leaf nodeis node 603, indicating that the incoming message contained the words“reflective coating” such that the predicted conversion rate is greaterthan 70%.

In various embodiments, the decision trees 606 and/or 602 includedifferent branch and/or root nodes and tests compared to the decisiontree 604, but have the same leaf nodes. Accordingly, for example,decision tree 606 can additionally or alternatively include a branch orroot node that has a test labeled, “message is displayed with pictureX”. FIG. 6 also illustrates that the majority vote winner is the“conversion rate greater than 70%”. Decision tree 606 indicates that thepredicted conversion rate is greater than 0.30 but less than 0.70, asindicated by the dotted lines around the leaf node 608. The decisiontree 602 indicates that the predicted conversion rate is also 0.70, asindicated by the dotted lines around the leaf node 610. Accordingly, thesystem tallies up the scores—there are 2 “conversion rate greater than0.70” and only 1 “conversion rate greater than 0.30 but less than orequal to 0.70” and 0 “conversion rate less than or equal to 0.30.”Because the majority of decision trees indicate that the conversion ratewill be greater than 0.70 for the incoming message, the system predictsthat the predicted conversion rate for a message (e.g., “Brand AIrridium sunglasses for sale 40% off” will be greater than 70 percent.

FIG. 7 is an example screenshot 700 of a user interface, according tosome embodiments. The screenshot 700 can be provided in any suitablemanner. For example, in some embodiments, a user can open a clientapplication, such as a web browser, and input a particular UniformResource Locator (URL) corresponding to a particular website or portalor perform a search query on a search engine and select a link thatdirects the user to the corresponding URL. In response to receiving theuser's URL or query request, an entity, such as the server 110 mayprovide or cause to be displayed to a user device (e.g., the clientdevice 120), the screenshot 700 represented by FIG. 7. A “portal” asdescribed herein in some embodiments includes a feature to promptauthentication and/or authorization information (e.g., a username and/orpassphrase) such that only particular users (e.g., a corporate groupentity) are allowed access to information. A portal can also includeuser member settings and/or permissions and interactive functionalitywith other user members of the portal, such as instant chat. In someembodiments a portal is not necessary to provide the user interface, butrather any of the views can be provided via a public website such thatno login is required (e.g., authentication and/or authorizationinformation) and anyone can view the information. In yet otherembodiments, the views represent an aspect of a locally storedapplication, such that a computing device hosts the entire applicationand consequently the computing device does not have to communicate withother devices (e.g., the management computing entity 110) to retrievedata.

The screenshot 700 includes a plurality of user interface elements 701,704, 703, 707 and 705. In some embodiments, the field 701 first receivesuser input of a candidate message, as indicated by the Japanesecharacters within the field 701. In various embodiments, the message isa candidate advertisement to provide to a publisher to be displayed on auser device. In response to the field 701 receiving the message, theelement 703 may receive a user selection that is indicative of a requestto predict the message effectiveness and other insights associated withthe message that was input into the field 701.

In response to the received selection of the element 703, some or eachof the functionality as described with respect to the system 200, 300,or 400 of FIG. 2, FIG. 3, and FIG. 4 respectively may occur. In someembodiments, each of the components within the system 400 may function.For example, an open rate may be predicted via the conversion predictioncomponent 410. Responsively, the open rate may be caused to be displayedas the element 707. In another example, the alternative wordcontribution scoring component 412 may generate contribution scores forword candidates and responsively cause the “word substitutionsuggestions” 704 (i.e., actual message elements contained in a messageinput into the field 701)) to be displayed. Each message element mayinclude a score or other indicator of rank, importance, relevance, etc.with respect to message effectiveness as described above. For example,the message element 704-1 may have the highest contribution score, whichis reflected or indicated under the “importance” column. Accordingly,the message element 704-1 many not need to be replaced by an alternativeword candidate, as opposed to other message elements illustrated in 704which may need to be replaced by an alternative word candidate based onthe low contribution scores as illustrated. In yet another example, thealternative word contribution scoring component 412 causes display ofthe group of synonyms 705 to be displayed for message elements that havea contribution score below a threshold (e.g., as determined by the wordcontribution scoring component 410) Alternative word candidates aredisplayed in 705 and the font size of them indicate their owncontribution scores (e.g., a word in 705 is associated with a conversionrate of over 70%). The font size is directly proportional to thecontribution scores. That is, the larger the contribution score, thelarger the font size of the alternative word candidate. Likewise, thesmaller the contribution score, the smaller the font size of thealternative word candidate. In this way, a user can easily spot whichsynonyms or alternative word candidates to use in replacement of a lowscoring original message element input at the field 701. In someembodiments, the consolidation component 414 causes each of the elementsto be displayed within the screenshot 700.

Exemplary Flow Diagrams

FIG. 8 is a flow diagram of an example process 800 for generating amessage effectiveness prediction and associated scores, according tosome embodiments. The process 800 (and/or any of the functionalitydescribed herein (e.g., process 900, 1000)) may be performed byprocessing logic that comprises hardware (e.g., circuitry, dedicatedlogic, programmable logic, microcode, etc.), software (e.g.,instructions run on a processor to perform hardware simulation),firmware, or a combination thereof. Although particular blocks describedin this disclosure are referenced in a particular order at a particularquantity, it is understood that any block may occur substantiallyparallel with or before or after any other block. Further, more (orfewer) blocks may exist than illustrated. For example, in someembodiments, only the blocks 801-807 are a part of the process 800. Inanother example, certain blocks are removed, such as block 803, 805, and813. Such added blocks may include blocks that embody any functionalitydescribed herein (e.g., as described in FIG. 2, FIG. 3, and/or FIG. 4).The computer-implemented method, the system (that includes at least onecomputing device having at least one processor and at least one computerreadable storage medium), and/or the computer program product asdescribed herein may perform or be caused to perform the processes 1000and/or 1100 or any other functionality described herein. In someembodiments, the process 800 is performed by the server 110 of FIG. 1.

Per block 801, one or more messages are received (e.g., by themorphological parsing component 202)). In some embodiments, the one ormore messages corresponds to a candidate advertisement for one or moreservices or one or more products for sale in a computer networkenvironment. The computer network environment includes one or morepublisher computing devices, one or more network advertiser computingdevices, and one or more user devices. In some embodiments, block 801occurs in response to a user inputting the message within the field 701of FIG. 7 and selecting the “test” element 703. In some embodiments, theone or more messages is the message input 332 and 432 of FIG. 3 or FIG.4 respectively. In some embodiments, the one or more messages arerepresented as a Japanese natural language message, as illustrated inthe field 701 of FIG. 7. Alternatively, the one or more messages mayrepresent one or more non-English languages (e.g., French, Spanish,Chinese, etc.). In some embodiments, however, the one or more messagesmay be represented in English.

Per block 803, the one or more messages are processed through a naturallanguage processing component (e.g., by the morphological parsingcomponent, 202, 302, and/or 402. In some embodiments, block 803 includesparsing the message(s) into the message's constituent message elements.In some embodiments, block 803 includes segmenting each of the messageelements into morphemes and tagging the message elements with POSidentifiers. In some embodiments, semantic analysis is not performed onthe message(s) or message elements. Rather, as described above, onlymorphological and/or syntactic analysis is performed. This may bebecause the semantic meaning of message elements in some languages isnot as crucial compared to the syntax in those languages.

Per block 805, the one or more messages are converted into a set ofvectors (e.g., by the vectorization component 204, 304, or 404). In someembodiments, in response to the processing the message elements througha NLP component, the message elements are converted into a first set ofvectors of real numbers. The real numbers are mapped in vector spacebased on processing the message elements through a word embedding vectormodel. In these embodiments, the first set of vectors are oriented inthe vector space according to a contextual similarity compared to asecond set of vectors corresponding to other messages or messageelements. For example, the word embedding vector model and vector spacecan be the same or similar concept described with respect to FIG. 5. Forexample, the message elements of the input message “Brand A Irridiumsunglasses sale 10% off” can be converted to the input vector encodingand then the output embedding vector as illustrated in the messagevectors 607. The output embedding vector can then be mapped ascoordinates in the vector space 609 of the word embedding vector model.

Per block 807, a prediction estimate of an effectiveness of themessage(s) is generated (e.g., by the conversion prediction component210, 310, or 410). In some embodiments, based at least in part on theprocessing of the message(s) through the word embedding vector model, afirst score associated with a predicted conversion rate is generated. Insome embodiments, the “first score” can be any score related to thepredicted conversion rate for the message(s), such as a contributionscore of one or more message elements (and/or message elements that arecandidate replacements) or the predicted conversion rate itself. Thepredicted conversion rate can be indicative of predicting a totalquantity of users of a website or application that will complete aparticular predefined action based on interacting with or viewing themessage. The predicted conversion rate can additionally or alternativelybe indicative of predicting a total quantity of user activities (e.g.,selections, downloads, etc.) on a website or application that is orcorresponds to a particular predefined action divided by or overnon-user activities. In some embodiments, the generating of the firstscore or the generating of the prediction estimate per block 807 isfurther based on using a Random Forest Regression machine learningmodel. For example, referring back to FIG. 6, the learning model 600 orsimilar learning models may be used in the prediction estimate at block807.

In some embodiments, the word embedding vector model, which can begenerated per block 805, is used based at least in part on a firstmessage element of the message(s) not being included in training data(e.g., within the storage 225, 325, and/or message data set 332) of amachine learning model. For example, the first message element may bemissing in the training data. The first message element and/or theentire message(s) can be run through the vector space 509 to be mappedto a vector or vectors. In response to this mapping, the vectors canthen be run through a machine learning model to make prediction (e.g.,the machine learning model 600 of FIG. 6). This makes predictionperformance stronger, as the system may always be guaranteed to makepredictions based on all message elements in the message, regardless ofthe existence/non-existence of the message elements in training data

Per block 809, a contribution score is generated (e.g., by the wordcontribution scoring component 210 or 410) for first message element(s)of the message(s). In some embodiments, this includes generating acontribution score for each message element of a plurality of messageelements of the message(s). The contribution score can be indicative ofan importance or relevance for each first message element forcontributing to the predicted conversion rate. In some embodiments, thecontribution score represents a second generated score.

Per block 811, one or more second message elements are provided (e.g.,by the alternative contribution scoring component 212 and/or theconsolidation component 214) as candidate(s) to replace or add to thefirst message element(s) or one or more of the first message elementsare removed. In some embodiments, this includes determining that atleast one contribution score of a first message element is below athreshold score (e.g., 0). Based at least in part on the determiningthat at least one contribution score of the first message element isbelow the threshold score, at least a second message element can beprovided as a candidate to replace the first message element. In someembodiments, the providing of the second message element(s) per block811 is based on utilizing a word embedding vector model. In theseembodiments, the word embedding vector model is used to replace (orprovide as a candidate to replace) the first message element of themessage with an alternative message element (i.e., the second messageelement) based on a vector of the first message element being within athreshold distance in the vector space (e.g., vector space 509) withanother vector. For example, the word “Irridum” may have a lowcontribution score and consequently run through vector space to find itsclosest neighbor, which may be “reflective lense.” Accordingly,“reflective lense” may be provided as a candidate to replace “iridium”in the message.

In some embodiments, block 811 may be based on generating contributionscores for the second message element(s). In some embodiments thisincludes determining that at least one of the contribution scores (e.g.,second score) for the first message element of the message is below athreshold score. Based at least in part on the determining that at leastone of the contribution scores of the first message element being belowthe threshold score, a third score can be generated for the secondmessage element. The second message element in various embodiments isnot included in the message received at block 801 but is a candidate forinclusion in the message. Based at least in part on the third scorebeing above the threshold score, at least the first message element canbe replaced (or provided for replacement) with the second messageelement or the second message element can be added to the one or moremessages without replacement. In some embodiments, certain alternativemessage elements that have contribution scores below the thresholdscore, are not provided as candidates. For example, a secondcontribution score can be generated for a third message element that isnot included in the message but that is a candidate to replace aparticular message element of the message. Based on the secondcontribution score being below the threshold score, the third messageelement is not provided as a replacement for the particular messageelement of the message.

In some embodiments, block 811 may alternatively or additionally bebased on determining that the second message element is a synonym of thefirst message element and is associated with a conversion rate orcontribution score that is above the threshold score. Per block 813,user face elements are caused to be displayed (e.g., by theconsolidation component 214, 414). For example, the elements (or similarelements) 707, 704, and 705 of the screenshot 700 of FIG. 7 can all becaused to be displayed as a part of block 813. In various embodiments,the prediction estimate at block 807, the contribution score per block809, and/or other message element candidates per block 811 can be causedto be displayed.

FIG. 9 is a flow diagram of an example process 900 for generating acontribution score for an original message element, according to someembodiments. In some embodiments, the process 900 occurs as a part of orentirely block 809 of the process 800 of FIG. 8. In some embodiments,the process 900 occurs for each message element (e.g., word) of amessage. In yet other embodiments, the process 900 is performed by acombination of the conversion prediction component 208 and 408 or theword contribution scoring component 210 or 410.

Per block 902, a first message effectiveness prediction for a firstmessage is generated (e.g., by the conversion prediction component 208).For example, a conversion rate is predicted for the first message. Perblock 904, a message element is removed or extracted from the firstmessage to form a new second message. For example, an original messagemight be “Brand X memory foam winter gloves 20% off”, which has a 38%predicted conversion rate. Per block 904, the message element “memoryfoam” may be extracted from the message so that the new second messagereads “Brand X winter gloves 20% off.”

Per block 906, a second message effectiveness prediction for the secondmessage is generated. For example, using the illustrated above, the newconversion rate may be predicted to be only 13%. The discrepancy inpredicted conversion rates may be indicative of “memory foam” being apopular type of winter glove and without this term, a user is lesslikely to select or otherwise perform a conversion task. Per block 908,the difference between the first message effectiveness prediction andthe second message effectiveness prediction is calculated. For example,using the illustration above, 13% or 0.13 is subtracted from 38% or 0.38to arrive at a score of 25% or 0.25. This gives insight into theimportance or contribution of the extracted message element for theentire message. Per block 910, the contribution sore for the messageelement is generated. For example, using the illustration above, 0.25 or25% is the contribution score at block 910. This is indicative of themessage element contributing to the message effectiveness prediction by25% or 0.25. That is, with the message element present in the message,the conversion rate is predicted to be 25% higher than it otherwisewould.

FIG. 10 is a flow diagram of an example process 1000 for replacing amessage element with a synonym of the message element, according to someembodiments. In some embodiments, the process 1000 occurs as a part ofor entirely block 811 of the process 800 of FIG. 8. In some embodiments,the process 1000 occurs for each message element replacement candidate.In yet other embodiments, the process 1000 is performed by thealternative word contribution scoring component 214 or 414.

Per block 1001 it is determined whether a message element's contributionscore is less than a threshold. In some embodiments, block 1001 occursin response to block 910 of FIG. 910. For example, using theillustration above, it can be determined whether the contribution scoreof 0.25 for the word element “memory foam” is below a threshold score(e.g., 0/0% or 0.95/95%). In some embodiments, if a contribution scoreis lower than zero (e.g., −4.5), this indicates that the predictedconversion rate of the message with the excluded message element ishigher than the predicted conversion rate of the original message whichcontains the message element. Responsively, an inference can be madethat the message element has a negative impact on the original message'sconversion rate, which triggers block 10005 in various embodiments. Insome embodiments, for each message element in the input message (e.g.,the message received at block 902) that has a contribution score belowthe threshold score, blocks 10005 through 1011 are performed. Likewise,if a message element's contribution score is not less than the thresholdat block 1001, then the system does not provide an alternative messageelement for replacement per block 10003.

Per block 1005, a synonym set for the message element (that is below thethreshold) is generated. In some embodiments, this includes a lookupfunction in a data structure, such as a hash table or a dictionary ofsynonyms. For example, the message can be looked up in a data structureand mapped to its corresponding set of synonyms (e.g., based on beingpart of the same data record). Using the illustrative example above, ifthe message element of “memory foam” is below the threshold at block1001, this message element can be located in a data structure and mappedto a list of synonyms, such as foam and “memory recall”.

Per block 1007 the message element is replaced with a synonym of thesynonym set to form a particular new message. For example, using theillustrative example above, the message element of “memory foam” isreplaced with “memory recall” to form the altered message of “Brand Xmemory recall winter gloves 20% off”. In various embodiments, blocks1007 through 1011 is performed for synonyms within the synonym set. Forexample, using the illustration above this process can be repeated forthe synonym “foam” (i.e., “Brand X foam winter gloves 20% off”).

Per block 1009 a message effectiveness prediction is generated for theparticular new or altered message. For example, using the illustrationabove, a conversion rate for the phrase “Brand X memory recall wintergloves 20% off” may be calculated (e.g., 0.18). Per block 1017 acontribution score can be generated for the synonym. For example, usingthe illustration above, “Brand X memory foam winter gloves 20% off” hasa 0.38 predicted conversion rate. Accordingly, 0.18 is subtracted from0.38 to arrive at a synonym contribution score of 0.20 or 20%. Invarious embodiments, each contribution score of each synonym in the setis compared to each other and only the highest or higher tier ofcontribution scores/synonyms are selected to provide as candidates toreplace message elements. In some embodiments, each contribution scoreof the synonyms are alternatively or additionally compared to thecorresponding original word element's contribution score. In this way,in some embodiments, each contribution score and/or correspondingmessage element (whether a synonym or an original message element) canbe caused to be displayed in a manner than indicates ranking or order ofscore. For example, using the illustration above, the original messageelement of “memory foam” may have the highest contribution score and belocated at the top. The next message element “foam” synonym may have thesecond highest score and located just underneath “memory foam.” Themessage element “memory recall” synonym may have the lowest score.Consequently, it may be displayed last or underneath “foam”.

Exemplary Operating Environments

FIG. 11 is a computer environment 100 in which aspects of the presentdisclosure are employed in, according to some embodiments. In someembodiments, the environment 1100 is used after messages are no longercandidates and are finalized based on predicted conversion rates,contribution scores, etc. have already been made. For example, theenvironment 1100 may be utilized in response to the functionalityoccurring as described with respect to FIG. 1, FIG. 4, FIG. 7, FIG. 8,FIG. 9, and/or FIG. 10. In some embodiments, the environment 1100represents a different network compared to the environment 100 ofFIG. 1. In some embodiments, these environments are part of the samenetwork where all of the components of FIG. 1 and FIG. 11 arecommunicatively coupled.

The Advertising computing device(s) 1101 represent network advertisingentities that negotiate with the publisher computing device(s) 1103 toadvertise one or more messages on the publisher computing device 1103platform. These messages are then caused to be displayed on the platform1103 to the one or more user devices 1105. In some embodiments, theadvertising computing device(s) 110 and the publisher computingdevice(s) 1103 are the same component such that advertisements are bothgenerated and caused to be displayed within web or application pages ofthe same entity.

In an illustrative example of how these components interact, referringback to FIG. 7, in response to the user inputting a first message “BrandA Irridium sunglasses 10% off” in the field 701, the messageeffectiveness predictions being made (e.g., via the element 707). Theuser may decide that the first message with certain replacement oralternative words (i.e., a second message) has a high enough predictedconversion rate (e.g., “Brand A reflective coating sunglasses 30% off”).Responsively, a user device 1105 may be browsing or otherwiseinteracting with a website or application hosted by the advertisingcomputing device(s) 1101. For example, a user may be browsing certainBrand A listings offered for sale in an electronic marketplace, such asreflective coating sunglasses. The user may complete a session or logoff of the website or application associated with the advertisingcomputing device(s) 1101 and responsively connect to another website orapplication page corresponding to the publisher computing device 1103.In response, the advertising computing device(s) may retarget the userby making a bid or otherwise negotiate parameters (e.g., pricing,content of the message, etc.). For example, the advertising computingdevice 1101 may transmit the second message identified above to thepublisher computing device 1103 as a part of a bid in order for thesecond message to be displayed to the user device 1105 within theplatform (e.g., web page or app page) of the publisher computing device1103. In response to such bid or negotiation, the second message can becaused to be displayed to the user device 1105.

The invention may be described in the general context of computer codeor machine-useable instructions, including computer-executableinstructions such as program modules, being executed by a computer orother machine, such as a personal data assistant or other handhelddevice. Generally, program modules including routines, programs,objects, components, data structures, etc., refer to code that performparticular tasks or implement particular abstract data types. Theinvention may be practiced in a variety of system configurations,including hand-held devices, consumer electronics, general-purposecomputers, more specialty computing devices, etc. The invention may alsobe practiced in distributed computing environments where tasks areperformed by remote-processing devices that are linked through acommunications network.

Having described embodiments of the present invention, an exemplaryoperating environment in which embodiments of the present invention maybe implemented is described below in order to provide a general contextfor various aspects of the present invention. Referring initially toFIG. 12 in particular, an exemplary operating environment forimplementing embodiments of the present invention is shown anddesignated generally as computing device 1200. Computing device 1200 isbut one example of a suitable computing environment and is not intendedto suggest any limitation as to the scope of use or functionality of theinvention. Neither should the computing device 1200 be interpreted ashaving any dependency or requirement relating to any one or combinationof components illustrated.

Looking now to FIG. 12, computing device 1200 includes a bus 10 thatdirectly or indirectly couples the following devices: memory 12, one ormore processors 14, one or more presentation components 16, input/output(I/O) ports 18, input/output components 20, and an illustrative powersupply 22. Bus 10 represents what may be one or more busses (such as anaddress bus, data bus, or combination thereof). Although the variousblocks of FIG. 12 are shown with lines for the sake of clarity, inreality, delineating various components is not so clear, andmetaphorically, the lines would more accurately be grey and fuzzy. Forexample, one may consider a presentation component such as a displaydevice to be an I/O component. Also, processors have memory. Theinventor recognizes that such is the nature of the art, and reiteratesthat the diagram of FIG. 12 is merely illustrative of an exemplarycomputing device that can be used in connection with one or moreembodiments of the present invention. Distinction is not made betweensuch categories as “workstation,” “server,” “laptop,” “hand-helddevice,” etc., as all are contemplated within the scope of FIG. 12 andreference to “computing device.”

Computing device 1200 typically includes a variety of computer-readablemedia. Computer-readable media can be any available media that can beaccessed by computing device 1200 and includes both volatile andnonvolatile media, and removable and non-removable media. By way ofexample, and not limitation, computer-readable media may comprisecomputer storage media and communication media. Computer storage mediaincludes both volatile and nonvolatile, removable and non-removablemedia implemented in any method or technology for storage of informationsuch as computer-readable instructions, data structures, program modulesor other data. Computer storage media includes, but is not limited to,RAM, ROM, EEPROM, flash memory or other memory technology, CD-ROM,digital versatile disks (DVD) or other optical disk storage, magneticcassettes, magnetic tape, magnetic disk storage or other magneticstorage devices, or any other medium which can be used to store thedesired information and which can be accessed by computing device 1200.Computer storage media does not comprise signals per se. Communicationmedia typically embodies computer-readable instructions, datastructures, program modules or other data in a modulated data signalsuch as a carrier wave or other transport mechanism and includes anyinformation delivery media. The term “modulated data signal” means asignal that has one or more of its characteristics set or changed insuch a manner as to encode information in the signal. By way of example,and not limitation, communication media includes wired media such as awired network or direct-wired connection, and wireless media such asacoustic, RF, infrared and other wireless media. Combinations of any ofthe above should also be included within the scope of computer-readablemedia.

In various embodiments, the computing device 1200 represents the clientdevice 120 and/or the server 110 of FIG. 1. In some embodiments, thecomputing device 1200 represents the advertising computing device(s)1101, the publisher computing device(s) 1103, and/or the user device(s)1105 of FIG. 11.

Memory 12 includes computer-storage media in the form of volatile and/ornonvolatile memory. The memory may be removable, non-removable, or acombination thereof. Exemplary hardware devices include solid-statememory, hard drives, optical-disc drives, etc. Computing device 1200includes one or more processors that read data from various entitiessuch as memory 12 or I/O components 20. Presentation component(s) 16present data indications to a user or other device. Exemplarypresentation components include a display device, speaker, printingcomponent, vibrating component, etc. In some embodiments, the memoryincludes program instructions that, when executed by one or moreprocessors, cause the one or more processors to perform anyfunctionality described herein, such as the processes 800, 900, and 1000with respect to FIG. 8, FIG. 9, and FIG. 10.

I/O ports 18 allow computing device 1200 to be logically coupled toother devices including I/O components 20, some of which may be builtin. Illustrative components include a microphone, joystick, game pad,satellite dish, scanner, printer, wireless device, etc. The I/Ocomponents 20 may provide a natural user interface (NUI) that processesair gestures, voice, or other physiological inputs generated by a user.In some instances, inputs may be transmitted to an appropriate networkelement for further processing. An NUI may implement any combination ofspeech recognition, stylus recognition, facial recognition, biometricrecognition, gesture recognition both on screen and adjacent to thescreen, air gestures, head and eye tracking, and touch recognition (asdescribed in more detail below) associated with a display of thecomputing device 1200. The computing device 1200 may be equipped withdepth cameras, such as stereoscopic camera systems, infrared camerasystems, RGB camera systems, touchscreen technology, and combinations ofthese, for gesture detection and recognition. Additionally, thecomputing device 1200 may be equipped with accelerometers or gyroscopesthat enable detection of motion. The output of the accelerometers orgyroscopes may be provided to the display of the computing device 1200to render immersive augmented reality or virtual reality.

As can be understood, embodiments of the present invention provide for,among other things, generating proof and attestation servicenotifications corresponding to a determined veracity of a claim. Thepresent invention has been described in relation to particularembodiments, which are intended in all respects to be illustrativerather than restrictive. Alternative embodiments will become apparent tothose of ordinary skill in the art to which the present inventionpertains without departing from its scope.

From the foregoing, it will be seen that this invention is one welladapted to attain all the ends and objects set forth above, togetherwith other advantages which are obvious and inherent to the system andmethod. It will be understood that certain features and sub combinationsare of utility and may be employed without reference to other featuresand sub combinations. This is contemplated by and is within the scope ofthe claims.

The subject matter of the present invention is described withspecificity herein to meet statutory requirements. However, thedescription itself is not intended to limit the scope of this patent.Rather, the inventors have contemplated that the claimed subject mattermight also be embodied in other ways, to include different steps orcombinations of steps similar to the ones described in this document, inconjunction with other present or future technologies. Moreover,although the terms “step” and/or “block” may be used herein to connotedifferent elements of methods employed, the terms should not beinterpreted as implying any particular order among or between varioussteps herein disclosed unless and except when the order of individualsteps is explicitly described.

What is claimed is:
 1. A non-transitory computer readable medium storingcomputer-usable instructions that, when used by one or more processors,cause the one or more processors to perform operations comprising:receiving a message for use in a computer network environment; parsingthe message into message elements and processing the message elementsthrough a natural language processing (NLP) component; based on theparsing, converting the message elements into a first set of vectors andmapping the first set of vectors in vector space based on processing themessage elements through a model; based on the converting the messageelements into the first set of vectors, generating a first scoreindicative of a predicted conversion rate for the message, the predictedconversion rate being indicative of predicting a proportion or quantityof all website or application users that will perform some predefinedaction associated with the message; generating a contribution score foreach message element of the message elements, each contribution scorebeing indicative of an amount that a respective message elementcontributes to the predicted conversion rate; determining that thecontribution score of a first message element is below or outside of athreshold score, the first message element being below or outside thethreshold score is indicative of the first message element notcontributing enough to the predicted conversion rate to be a part of themessage; and based at least in part on the determining that thecontribution score of the first message element is below or outside ofthe threshold score: providing a second message element as a candidateto replace the first message element, or providing the first messageelement as a candidate for removal from the message.
 2. Thenon-transitory computer readable medium of claim 1, wherein the modelincludes a word embedding vector model.
 3. The non-transitory computerreadable medium of claim 1, wherein the processing of the messageelements through the NLP component comprises segmenting each of themessage elements into morphemes and tagging the message elements withpart of speech (POS) identifiers, and wherein semantic analysis is notperformed on the message or the message elements.
 4. The non-transitorycomputer readable medium of claim 1, wherein the message includes anadvertisement, and wherein the message elements includes individualwords of the advertisement.
 5. The non-transitory computer readablemedium of claim 1, wherein the model is used to replace the firstmessage element of the message with the second message element based ona vector of the first message element being within a threshold distancein the vector space with another vector.
 6. The non-transitory computerreadable medium of claim 1, wherein the providing of the second messageelement to replace the first message element is further based ondetermining that the second message element is a synonym of the firstmessage element and is associated with a conversion rate that is above athreshold score.
 7. The non-transitory computer readable medium of claim1, wherein the replacing the first message element with the secondmessage element is based on determining that the second message elementis closest to the first message element in the vector space of themodel.
 8. The non-transitory computer readable medium of claim 1,wherein the generating of the first score is further based on using aRandom Forest Regression machine learning model.
 9. The non-transitorycomputer readable medium of claim 1, the operations further comprising,in response to the generating of the first score, causing an alteredmessage to be displayed to a publisher's website on a user device,wherein the altered message contains only a portion of the message. 10.A computer-implemented method comprising: receiving a message for use ina computer network environment; parsing the message into messageelements and processing the message elements through a natural languageprocessing (NLP) component; converting the message elements into a firstset of vectors and mapping the first set of vectors in vector spacebased on processing the message elements through a model; generating afirst score indicative of a predicted conversion rate for the message;generating a contribution score for each message element of the messageelements, each contribution score being indicative of an amount that arespective message element contributes to the predicted conversion rate;determining that the contribution score of a first message element isbelow or outside of a threshold score, the first message element beingbelow or outside the threshold score is indicative of the first messageelement not contributing enough to the predicted conversion rate to be apart of the message; and based at least in part on the determining thatthe contribution score of the first message element is below or outsideof the threshold score: providing a second message element as acandidate to replace the first message element, or providing the firstmessage element as a candidate for removal from the message.
 11. Thecomputer-implemented method of claim 10, wherein the model includes aword embedding vector model.
 12. The computer-implemented method ofclaim 10, wherein the processing of the message elements through the NLPcomponent comprises segmenting each of the message elements intomorphemes and tagging the message elements with part of speech (POS)identifiers, and wherein semantic analysis is not performed on themessage or the message elements.
 13. The computer-implemented method ofclaim 10, wherein the message includes an advertisement, and wherein themessage elements includes individual words of the advertisement.
 14. Thecomputer-implemented method of claim 10, wherein the model is used toreplace the first message element of the message with the second messageelement based on a vector of the first message element being within athreshold distance in the vector space with another vector.
 15. Thecomputer-implemented method of claim 10, wherein the providing of thesecond message element to replace the first message element is furtherbased on determining that the second message element is a synonym of thefirst message element and is associated with a conversion rate that isabove a threshold score.
 16. The computer-implemented method of claim10, wherein the replacing the first message element with the secondmessage element is based on determining that the second message elementis closest to the first message element in the vector space of themodel.
 17. The computer-implemented method of claim 10, wherein thegenerating of the first score is further based on using a Random ForestRegression machine learning model.
 18. The computer-implemented methodof claim 10, further comprising, in response to the generating of thefirst score, causing an altered message to be displayed to a publisher'swebsite on a user device, wherein the altered message contains only aportion of the message.
 19. A computerized system comprising: a parsingmeans for parsing a message into message elements and processing themessage elements through a natural language processing (NLP) component,the message being indicative of a candidate advertisement for one ormore services or one or more products; a vectorization means forconverting the message elements of the message into a first set ofvectors and mapping the first set of vectors in vector space; aconversion prediction means for generating a message effectiveness scorebased at least in part on the converting, the message effectivenessscore being associated with a predicted conversion rate; a wordcontribution scoring means for generating a contribution score for eachmessage element of the message elements, each contribution scoreindicative of an amount that a respective message element contributes tothe predicted message effectiveness score; and an alternative wordcontribution scoring means for providing at least a second messageelement as a candidate to replace a first message element within themessage based at least in part on the contribution score for the firstmessage element.
 20. The computerized system of claim 19, wherein eachmessage element represents a respective word of the candidateadvertisement.